// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// 封装一个函数：显示轻提示盒子
function tip(msg='默认提示内容') {
  // 第3步，创建轻提示对象
  const toastBox = document.querySelector('#myToast')
  const toast = new bootstrap.Toast(toastBox, {
    animation: true, // 是否开启过渡动画
    autohide: true, // 是否自动隐藏
    delay: 3000, // 3000毫秒后自动隐藏
  })
  // 把传入的提示消息内容，放入到指定的食子中
  toastBox.querySelector('.toast-body').innerHTML = msg
  
  // 第4步，显示轻提示
  toast.show()
}

// 配置接口调用的基地址
axios.defaults.baseURL = 'http://ajax-api.itheima.net'

/*********显示用户名到页面*******/
// 当前文件是公共的文件，login和register也引入了
// 在登录页和注册页没有span盒子
// 1.从本地存储中取出用户名
const username = localStorage.getItem('user-name')
const box = document.querySelector('.navbar-nav .font-weight-bold')
// 判断span盒子是否存在
if (box) {
  box.innerHTML = username
}
/******************退出登录*********************/
// 1-给退出按钮注册点击事件
const logout = document.querySelector('#logout')
if (logout) {
  logout.addEventListener('click', function () {
    // 2-清除token
    localStorage.removeItem('user-token')
    localStorage.removeItem('user-name')
    // 3-跳转页面到登录页
    location.href = 'login.html'
  })
}

/*******请求拦截器*********/
// 添加请求拦截器----请求发送之前都会执行的一个函数
  axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // alert('拦截了到一个请求')
    // console.log('拦截到了一个请求--config', config)
    // 请求拦截器应用：统一的在请求头中设置token
    const token = localStorage.getItem('user-token')
    if (token) {
      config.headers.authorization = token
    }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  })

  /*********响应拦截器*******/
  // 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    // 对套壳对象---敲掉一层壳（剥离一层数据）----套壳对象.data属性保存着服务器响应的数据
    return response.data;
  }, function (error) {
        // 响应拦截器应用1：处理token失效的错误响应
    if (error.response.status === 401) {
      // 提示
      alert('登录状态失效，请重新登录')
      // 清除失效的token
      localStorage.removeItem('user-token')
      localStorage.removeItem('user-name')
      // 页面跳转到登录页
      setTimeout(function () {
        location.href = 'login.html'
      }, 500)
    }
    // 对响应错误做点什么
    return Promise.reject(error);
  })